/**
 *  Main Agent interface implemented by any type of 
 *agent to be created; 
 * @author Francis,Aidan
 */
package agent;


public interface Agent {
	
	public static final String TYPE_MEETING = "MEETING";
	public static final String TYPE_INFORMATION= "INFORMATION";

	/**
	*access a contact details from the storage vector
	*based on an index
	*
	*@param n=index
	*/
	public String getContact(int n);
	/**
	*return the index of the next recipient
	*/
	
	public int getNextIndex();

	/**
	 * read in all the agents values from a string
	 * the order in which they are read in is important and should 
	 * be matched with the fromString method
	 * 
	 * @param agentString
	 */
	public void fromString( String agentString );
	
	/**
	 * the toString method writes out all the agents values 
	 * the order in which they are written out is important and should 
	 * be matched with the fromString method
	 * 
	 * @return the agent in string form
	 **/
	public String toString();	
	
	/**
	 * @return address is the address agent is to be sent to next
	 */
	public String getNextAddress();
	
	/**
	 * @return port is the port agent is to be sent to next
	 */
	public int getNextPort();
}
